// 该文件用于创建vuex中最为核心的store
// 小提示，vuex的数据同样可以在vue开发者工具里看见
// vuex同样有模块化，防止过于臃肿和git提交时发生版本冲突，需要下去再看
// 引入vue
import Vue from 'vue'
// 既然是vyex里面的，当然要引入vuex
import vuex from 'vuex'
// actions用于响应组件里面的动作
const actions = {
jia(context,val){
//    第一个参数是迷你的store，第二个参数就是你传递过来的值
// 给你一个就是要你用里面的commit之类的来传递数据给mutations，还有很多其他的功能，好好使用
// 这里我们转手再给mutations，其实不是要用Ajax的情况下，这步其实没啥用
// 下面这步是传给mutations的函数，为了区分，一般actions里面用小写，mutations里面函数大写，以用来区分名字一样的情况，不用也没事
// 有什么逻辑操作也尽量咋actions里面做吧
context.commit('JIA',val)

}
}

// mutations用于操作数据，其实就是state
const mutations = {
    JIA(state,value){
        // 这边两个参数，一个是state（没错和下面那个几乎没区别，你当他用就行），一个是传递过来的值

        state.sum += value;
    }

}

// 还有一个配置项叫getters,用于将state里面的数据进行加工
const getters = {
    bigSum(state){
        return state.sum*10;
    }
}


// state用于存储数据
const state = {
    sum:0
}


Vue.use(vuex)
// 创建store并且传入刚才创建的三个对象
const store = new vuex.Store({
    // 下面都是简写，原本是actions:actions
    actions,
    mutations,
    state,
    // 你要是用了getter就配置，不用不配置
    getters
})

// 暴露出store
export default store